/********************************** (C) COPYRIGHT *******************************
* File Name          : pid.h
* Author             : nx666
* Version            : V1.0.0
* Date               : 2023/08/5
* Description        : pdi接口在这里声明
*******************************************************************************/
#ifndef __PID_H
#define __PID_H

#ifdef __cplusplus
extern "C" {
#endif

#include "common_type.h"
#include "module_config.h"

/**********************************宏定义区******************************/


/******************************* *类型定义区******************************/
typedef enum pdi_type{
    PID_TYPE_POS,
    PID_TYPE_INC,
}pdi_type_;
typedef struct pid
{
    pdi_type_ type;
    /* ---->都为iq12<--------*/
    _iq kp;
    _iq ki;
    _iq kd;
    _iq Integral;
    _iq lastError;
    _iq uk;
    _iq (*calc)(struct pid *,_iq);
    void (*setType)(struct pid *,pdi_type_);
}pid_;




 /*********************************************************************
 * @fn      pidCreate
 *
 * @brief   pid构造函数，
 *              void
 *
 * @return  smo_ *，成功  NULL，失败
 *          
 */
pid_ *pidCreate(_iq kp, _iq ki, _iq kd);

#ifdef __cplusplus
}
#endif

#endif /*__PID_H */